// pages/service/service.js
const app = getApp()
const common = require('../../utils/common.js')
const auth = require('../../utils/auth.js')

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 联系表单
    showContactForm: false,
    contactTargetId: '',
    
    // 筛选条件
    filters: [
      { id: 0, name: '全部' },
      { id: 1, name: '办公场地' },
      { id: 2, name: '金融贷款' },
      { id: 3, name: '劳务派遣' },
      { id: 4, name: '物流代办' },
      { id: 5, name: '农机服务' }
    ],
    selectedFilter: 0,
    
    // 服务列表数据
    serviceList: [],
    
    // 分页参数
    page: 1,
    pageSize: 10,
    hasMore: true,
    loadingMore: false,
    
    // 搜索相关
    showSearchModal: false,
    searchKeyword: '',
    searchHistory: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('服务市场页面加载')
    this.loadServiceList()
    this.loadSearchHistory()
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 更新tabBar选中状态
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 1
      })
    }
  },

  /**
   * 加载服务列表（预留接口调用位置）
   */
  loadServiceList(loadMore = false) {
    if (this.data.loadingMore && loadMore) return
    
    if (!loadMore) {
      this.setData({ page: 1, hasMore: true })
    }
    
    this.setData({ loadingMore: true })
    
    // TODO: 调用API接口获取服务列表
    // 示例：
    // const { page, pageSize, selectedFilter } = this.data
    // const filterName = this.data.filters[selectedFilter].name
    // 
    // wx.request({
    //   url: app.globalData.apiBaseUrl + '/api/services',
    //   method: 'GET',
    //   data: {
    //     page: page,
    //     pageSize: pageSize,
    //     category: filterName === '全部' ? '' : filterName
    //   },
    //   success: (res) => {
    //     if (res.data.code === 200) {
    //       const newList = res.data.data.list
    //       const serviceList = loadMore ? this.data.serviceList.concat(newList) : newList
    //       this.setData({
    //         serviceList: serviceList,
    //         hasMore: newList.length === pageSize,
    //         page: page + 1
    //       })
    //     }
    //   },
    //   fail: (err) => {
    //     common.showToast('加载失败', 'error')
    //     console.error('加载服务列表失败:', err)
    //   },
    //   complete: () => {
    //     this.setData({ loadingMore: false })
    //   }
    // })
    
    // 使用静态数据模拟
    setTimeout(() => {
      const mockData = this.getMockServiceList()
      const serviceList = loadMore ? this.data.serviceList.concat(mockData) : mockData
      this.setData({
        serviceList: serviceList,
        loadingMore: false,
        hasMore: mockData.length === this.data.pageSize
      })
    }, 500)
  },

  /**
   * 获取模拟数据
   */
  getMockServiceList() {
    const services = [
      {
        id: 1,
        image: 'https://images.unsplash.com/photo-1625246333195-78d9c38ad449?w=120&h=120&fit=crop',
        title: '专业农机服务 - 耕地播种一站式',
        desc: '提供专业农机服务，包括耕地、播种、收割等全流程服务，设备先进，经验丰富',
        price: '200/亩起',
        tag: '农机服务',
        tagClass: 'tag-primary',
        user: '张**',
        phone: '138****5678',
        time: '2小时前',
        views: '1.2k'
      },
      {
        id: 2,
        image: 'https://images.unsplash.com/photo-1574943320219-553eb213f72d?w=120&h=120&fit=crop',
        title: '现代化办公场地出租',
        desc: '位于城市中心，交通便利，配套完善，适合各类农业企业办公使用',
        price: '3000/月起',
        tag: '办公场地',
        tagClass: 'tag-secondary',
        user: '李**',
        phone: '159****8765',
        time: '5小时前',
        views: '856'
      },
      {
        id: 3,
        image: 'https://images.unsplash.com/photo-1579621970563-ebec7560ff3e?w=120&h=120&fit=crop',
        title: '农业金融贷款服务',
        desc: '专注农业领域的金融服务，利率优惠，审批快速，助力农业发展',
        price: '最高500万',
        tag: '金融贷款',
        tagClass: 'tag-accent',
        user: '王**',
        phone: '186****2345',
        time: '1天前',
        views: '2.1k'
      },
      {
        id: 4,
        image: 'https://images.unsplash.com/photo-1589923188900-85dae523342b?w=120&h=120&fit=crop',
        title: '劳务派遣 - 季节性用工',
        desc: '提供优质劳动力资源，适合农忙季节用工需求，人员素质高，经验丰富',
        price: '150/天起',
        tag: '劳务派遣',
        tagClass: 'tag-purple',
        user: '赵**',
        phone: '137****9012',
        time: '2天前',
        views: '643'
      },
      {
        id: 5,
        image: 'https://images.unsplash.com/photo-1601758228041-f3b2795255f1?w=120&h=120&fit=crop',
        title: '全程物流配送服务',
        desc: '专业冷链物流，保证农产品新鲜到达，覆盖全国各地，价格实惠',
        price: '2元/公斤起',
        tag: '物流代办',
        tagClass: 'tag-accent',
        user: '孙**',
        phone: '158****3456',
        time: '3天前',
        views: '892'
      }
    ]
    
    const { selectedFilter } = this.data
    if (selectedFilter === 0) {
      return services
    }
    
    const filterName = this.data.filters[selectedFilter].name
    return services.filter(item => item.tag === filterName)
  },

  /**
   * 筛选条件改变
   */
  onFilterChange(e) {
    const index = e.currentTarget.dataset.index
    if (index === this.data.selectedFilter) return
    
    this.setData({ 
      selectedFilter: index,
      serviceList: []
    })
    this.loadServiceList()
  },

  /**
   * 上拉加载更多
   */
  onReachBottom() {
    if (!this.data.hasMore || this.data.loadingMore) return
    this.loadServiceList(true)
  },

  /**
   * 跳转到服务详情
   */
  goToDetail(e) {
    const id = e.currentTarget.dataset.id
    common.navigateTo(`/pages/service-detail/service-detail?id=${id}`)
  },

  /**
   * 联系服务商
   */
  async onContactService(e) {
    const id = e.currentTarget.dataset.id
    console.log('联系服务商:', id)
    
    // 检查是否登录
    const isLogin = await auth.requireLogin(() => {
      // 登录成功后显示表单
      this.setData({
        showContactForm: true,
        contactTargetId: id
      })
    })
    
    // 如果已经登录，直接显示表单
    if (isLogin) {
      this.setData({
        showContactForm: true,
        contactTargetId: id
      })
    }
  },

  /**
   * 隐藏联系表单
   */
  hideContactForm() {
    this.setData({
      showContactForm: false
    })
  },

  /**
   * 联系表单提交成功
   */
  onContactSuccess(e) {
    console.log('联系表单提交成功:', e.detail)
    wx.showToast({
      title: '提交成功',
      icon: 'success'
    })
  },

  /**
   * 打开搜索弹窗
   */
  onSearchClick() {
    this.setData({ showSearchModal: true })
  },

  /**
   * 关闭搜索弹窗
   */
  onCloseSearch() {
    this.setData({ 
      showSearchModal: false,
      searchKeyword: ''
    })
  },

  /**
   * 搜索输入
   */
  onSearchInput(e) {
    this.setData({ searchKeyword: e.detail.value })
  },

  /**
   * 搜索确认
   */
  onSearchConfirm(e) {
    const keyword = e.detail.value.trim()
    if (!keyword) {
      common.showToast('请输入搜索关键词', 'none')
      return
    }
    
    // 保存搜索历史
    this.saveSearchHistory(keyword)
    
    // TODO: 执行搜索
    console.log('搜索关键词:', keyword)
    common.showToast('搜索功能开发中...', 'none')
    
    this.setData({ showSearchModal: false, searchKeyword: '' })
  },

  /**
   * 清空搜索框
   */
  onClearSearch() {
    this.setData({ searchKeyword: '' })
  },

  /**
   * 加载搜索历史
   */
  loadSearchHistory() {
    const history = common.getStorage('searchHistory') || []
    this.setData({ searchHistory: history })
  },

  /**
   * 保存搜索历史
   */
  saveSearchHistory(keyword) {
    let history = this.data.searchHistory
    
    // 如果已存在，先移除
    history = history.filter(item => item !== keyword)
    
    // 添加到开头
    history.unshift(keyword)
    
    // 最多保存10条
    if (history.length > 10) {
      history = history.slice(0, 10)
    }
    
    this.setData({ searchHistory: history })
    common.setStorage('searchHistory', history)
  },

  /**
   * 点击搜索历史
   */
  onHistoryClick(e) {
    const keyword = e.currentTarget.dataset.keyword
    this.setData({ searchKeyword: keyword })
    
    // TODO: 执行搜索
    console.log('搜索历史关键词:', keyword)
    common.showToast('搜索功能开发中...', 'none')
    
    this.setData({ showSearchModal: false, searchKeyword: '' })
  },

  /**
   * 清空搜索历史
   */
  onClearHistory() {
    common.showModal('提示', '确定要清空搜索历史吗？', true).then(confirm => {
      if (confirm) {
        this.setData({ searchHistory: [] })
        common.removeStorage('searchHistory')
        common.showToast('已清空', 'success')
      }
    })
  },

  /**
   * 阻止事件冒泡
   */
  stopPropagation() {},

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    console.log('下拉刷新')
    this.loadServiceList()
    setTimeout(() => {
      wx.stopPullDownRefresh()
    }, 1000)
  },

  /**
   * 分享
   */
  onShareAppMessage() {
    return {
      title: '壹加壹农业服务市场',
      path: '/pages/service/service',
      imageUrl: '/images/share.jpg'
    }
  },

  /**
   * 分享到朋友圈
   */
  onShareTimeline() {
    return {
      title: '壹加壹农业服务市场',
      query: '',
      imageUrl: '/images/share.jpg'
    }
  }
})

